home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dlaed2.z / dlaed2
Text File  |  1996-03-14  |  7KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DLAED2 - merge the two sets of eigenvalues together into a single sorted
  10.      set
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE DLAED2( K, N, D, Q, LDQ, INDXQ, RHO, CUTPNT, Z, DLAMDA, Q2,
  14.                         LDQ2, INDXC, W, INDXP, INDX, COLTYP, INFO )
  15.  
  16.          INTEGER        CUTPNT, INFO, K, LDQ, LDQ2, N
  17.  
  18.          DOUBLE         PRECISION RHO
  19.  
  20.          INTEGER        COLTYP( * ), INDX( * ), INDXC( * ), INDXP( * ), INDXQ(
  21.                         * )
  22.  
  23.          DOUBLE         PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( LDQ2,
  24.                         * ), W( * ), Z( * )
  25.  
  26. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  27.      DLAED2 merges the two sets of eigenvalues together into a single sorted
  28.      set.  Then it tries to deflate the size of the problem.  There are two
  29.      ways in which deflation can occur:  when two or more eigenvalues are
  30.      close together or if there is a tiny entry in the Z vector.  For each
  31.      such occurrence the order of the related secular equation problem is
  32.      reduced by one.
  33.  
  34.  
  35. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  36.      K      (output) INTEGER
  37.             The number of non-deflated eigenvalues, and the order of the
  38.             related secular equation. 0 <= K <=N.
  39.  
  40.      N      (input) INTEGER
  41.             The dimension of the symmetric tridiagonal matrix.  N >= 0.
  42.  
  43.      D      (input/output) DOUBLE PRECISION array, dimension (N)
  44.             On entry, D contains the eigenvalues of the two submatrices to be
  45.             combined.  On exit, D contains the trailing (N-K) updated
  46.             eigenvalues (those which were deflated) sorted into increasing
  47.             order.
  48.  
  49.      Q      (input/output) DOUBLE PRECISION array, dimension (LDQ, N)
  50.             On entry, Q contains the eigenvectors of two submatrices in the
  51.             two square blocks with corners at (1,1), (CUTPNT,CUTPNT) and
  52.             (CUTPNT+1, CUTPNT+1), (N,N).  On exit, Q contains the trailing
  53.             (N-K) updated eigenvectors (those which were deflated) in its last
  54.             N-K columns.
  55.  
  56.      LDQ    (input) INTEGER
  57.             The leading dimension of the array Q.  LDQ >= max(1,N).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      INDXQ  (input/output) INTEGER array, dimension (N)
  75.             The permutation which separately sorts the two sub-problems in D
  76.             into ascending order.  Note that elements in the second half of
  77.             this permutation must first have CUTPNT added to their values.
  78.             Destroyed on exit.
  79.  
  80.      RHO    (input/output) DOUBLE PRECISION
  81.             On entry, the off-diagonal element associated with the rank-1 cut
  82.             which originally split the two submatrices which are now being
  83.             recombined.  On exit, RHO has been modified to the value required
  84.             by DLAED3.
  85.  
  86.             CUTPNT (input) INTEGER The location of the last eigenvalue in the
  87.             leading sub-matrix.  min(1,N) <= CUTPNT <= N.
  88.  
  89.      Z      (input) DOUBLE PRECISION array, dimension (N)
  90.             On entry, Z contains the updating vector (the last row of the
  91.             first sub-eigenvector matrix and the first row of the second sub-
  92.             eigenvector matrix).  On exit, the contents of Z have been
  93.             destroyed by the updating process.
  94.  
  95.             DLAMDA (output) DOUBLE PRECISION array, dimension (N) A copy of
  96.             the first K eigenvalues which will be used by DLAED3 to form the
  97.             secular equation.
  98.  
  99.      Q2     (output) DOUBLE PRECISION array, dimension (LDQ2, N)
  100.             A copy of the first K eigenvectors which will be used by DLAED3 in
  101.             a matrix multiply (DGEMM) to solve for the new eigenvectors.   Q2
  102.             is arranged into three blocks.  The first block contains non-zero
  103.             elements only at and above CUTPNT, the second contains non-zero
  104.             elements only below CUTPNT, and the third is dense.
  105.  
  106.      LDQ2   (input) INTEGER
  107.             The leading dimension of the array Q2.  LDQ2 >= max(1,N).
  108.  
  109.      INDXC  (output) INTEGER array, dimension (N)
  110.             The permutation used to arrange the columns of the deflated Q
  111.             matrix into three groups:  the first group contains non-zero
  112.             elements only at and above CUTPNT, the second contains non-zero
  113.             elements only below CUTPNT, and the third is dense.
  114.  
  115.      W      (output) DOUBLE PRECISION array, dimension (N)
  116.             The first k values of the final deflation-altered z-vector which
  117.             will be passed to DLAED3.
  118.  
  119.      INDXP  (workspace) INTEGER array, dimension (N)
  120.             The permutation used to place deflated values of D at the end of
  121.             the array.  INDXP(1:K) points to the nondeflated D-values
  122.             and INDXP(K+1:N) points to the deflated eigenvalues.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          DDDDLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      INDX   (workspace) INTEGER array, dimension (N)
  141.             The permutation used to sort the contents of D into ascending
  142.             order.
  143.  
  144.             COLTYP (workspace/output) INTEGER array, dimension (N) During
  145.             execution, a label which will indicate which of the following
  146.             types a column in the Q2 matrix is:
  147.             1 : non-zero in the upper half only;
  148.             2 : non-zero in the lower half only;
  149.             3 : dense;
  150.             4 : deflated.  On exit, COLTYP(i) is the number of columns of type
  151.             i, for i=1 to 4 only.
  152.  
  153.      INFO   (output) INTEGER
  154.             = 0:  successful exit.
  155.             < 0:  if INFO = -i, the i-th argument had an illegal value.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.